package cn.stronglink.asset.module.dam.utils.factorys.req;

import java.util.ArrayList;
import java.util.List;

import com.alibaba.fastjson.JSON;

import cn.stronglink.asset.module.dam.entity.dev.AssetInfo;
import cn.stronglink.asset.module.dam.entity.dev.RackInfo;
import cn.stronglink.asset.module.dam.entity.message.MsgScreenCommand;
import cn.stronglink.asset.module.dam.utils.dataJsonUtils.EmptyUtil;
import cn.stronglink.asset.module.dam.utils.dataJsonUtils.realtime.send.MsgSendUtil;
import cn.stronglink.asset.module.dam.utils.dataJsonUtils.req.send.RackInfoMsgFormatUtil;
import cn.stronglink.asset.module.dam.utils.dataJsonUtils.req.send.SendCmdUtil;
import cn.stronglink.asset.module.dam.utils.dataJsonUtils.req.send.TestCmdFormatUtil;
import cn.stronglink.asset.module.dam.utils.factorys.common.FactoryDatas;
import cn.stronglink.asset.module.dam.utils.factorys.common.FactoryFooter;
import cn.stronglink.asset.module.dam.utils.factorys.common.FactoryHead;
import cn.stronglink.asset.module.dam.utils.factorys.common.FactoryOpenWindow;

public class Factory2RackInfo {
	/**
	 * 命令1：打开指定窗口：   打开窗口指令请求 发送指令 01 01  01/02     页面参数
	 */
	public static void open2RackInfo(MsgScreenCommand bm,RackInfo  info) {
		StringBuilder build= new StringBuilder();
		build.append(FactoryOpenWindow.openWindow(2));// 打开页面
		build.append(getRackInfo(  info));// 获取机柜信息
		
		bm.getAwsPostdata().setCommand(build.toString());
		MsgSendUtil.sendMsg(SendCmdUtil.topic, JSON.toJSONString(bm));// 发送消息
		System.out.println("\n\n");
		TestCmdFormatUtil.changeAndPrint(build.toString());
	}
	
	/**
	 * 获取机柜信息 ： 机柜名称，ip, rackCode, 使用u高， 未使用u高， 设备个数（在架） ， 使用量
	 * 
	 */

	public static String getRackInfo(RackInfo info) {
		// 数据===机柜名称，ip, rackCode, 使用u高， 未使用u高， 设备个数（在架） ， 使用量
		StringBuilder datas = new StringBuilder();
		List<String> list=new ArrayList<>();
		list.add("\r\n机柜名称");
		list.add("\r\n机柜ip");
		list.add("\r\n机柜转换码");
		list.add("\r\n设备个数");
		list.add("\r\n已使用u高");
		list.add("\r\n未使用u高");
		list.add("\r\n使用情况");
		
		list=RackInfoMsgFormatUtil.formatStr(list);
		
		datas.append(list.get(0)).append(":").append(EmptyUtil.clearNull(String.valueOf(info.getRackName())))
				.append(list.get(1)).append(":").append(EmptyUtil.clearNull(info.getIp()))
				.append(list.get(2)).append(":").append(EmptyUtil.clearNull(info.getRackConverCode()))
				.append(list.get(3)).append(":").append(String.valueOf(info.getAssetCount()))
				.append(list.get(4)).append(":").append(String.valueOf(info.getUsedU()))
				.append(list.get(5)).append(":").append(String.valueOf(info.getTotalU() - info.getUsedU()))
				.append(list.get(6)).append(":").append(String.valueOf(info.getUsedU())).append("/").append(String.valueOf(info.getTotalU()));

		// 拼接指令
		StringBuilder buf = FactoryHead.addHead("B110");
		buf.append(FactoryDatas.changeScreenidOrpartNoToHex(2));// 页面id 2,
		buf.append(FactoryDatas.changeScreenidOrpartNoToHex(1));// 控件id 1
		buf.append(FactoryDatas.addData(datas.toString()));// 门状态： 数据
		return FactoryFooter.addFooter(buf);
	}
}
